Vue Event Modifiers

Vue ইভেন্ট সম্পাদক

Vue ইভেন্ট সম্পাদক

Vue-তে ইভেন্ট এডিটররা ইভেন্টগুলির পদ্ধতিগুলি সম্পাদন করার উপায় পরিবর্তন করে এবং ইভেন্টগুলিকে আরও দক্ষ এবং সোজা উপায়ে পরিচালনা করতে সহায়তা করে।

ইভেন্ট মডিফায়ারগুলি Vue v-on মেকানিজমের সাথে একত্রে ব্যবহার করা হয়, উদাহরণস্বরূপ:

কীভাবে ভি-অন অ্যালগরিদম পরিবর্তন করবেন

ইভেন্ট মডিফায়ারগুলি একটি ইভেন্টে কীভাবে প্রতিক্রিয়া জানাতে হয় তা আরও সংজ্ঞায়িত করতে ব্যবহৃত হয়।

যেমন আমরা আগে দেখেছি আমরা একটি ইভেন্টে একটি ট্যাগ সংযুক্ত করে ইভেন্ট মডিফায়ার ব্যবহার করি:

<button v-on:click="createAlert">Create alert</button>

এখন, আরও সুনির্দিষ্টভাবে সংজ্ঞায়িত করার জন্য যে বোতাম ক্লিক ইভেন্টটি পৃষ্ঠাটি লোড হওয়ার পরে শুধুমাত্র একবার ফায়ার করা উচিত, আমরা এইভাবে .once সংশোধক যোগ করতে পারি:

<button v-on:click.once="createAlert">Create alert</button>

এখানে .one modifier-এর সাথে একটি উদাহরণ:

উদাহরণ

.one modifier ব্যবহার করা হয় <button> ট্যাগে শুধুমাত্র প্রথমবার 'ক্লিক' ইভেন্টটি ঘটলে পদ্ধতিটি চালানোর জন্য।

<div id="app">
  <p>Click the button to create an alert:</p>
  <button v-on:click.once="createAlert">Create Alert</button>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    methods: {
      createAlert() {
        alert("Alert created from button click")
      }
    }
  })
  app.mount('#app')
</script>

💻আপনার নিজস্ব Vue সার্ভার পান

এক সময় শুধুমাত্র বোতাম ডেমো

একটি সতর্কতা তৈরি করতে বোতামটি ক্লিক করুন:

বোতামটি সক্রিয়

📝দ্রষ্টব্য:

ইভেন্ট সংশোধক ব্যবহার করার পরিবর্তে পদ্ধতির ভিতরে ইভেন্ট পরিচালনা করাও সম্ভব, তবে ইভেন্ট মডিফায়ারগুলি এটিকে আরও সহজ করে তোলে।

বিভিন্ন ভি-অন রেকটিফায়ার

ইভেন্ট এডিটর বিভিন্ন পরিস্থিতিতে ব্যবহার করা হয়. কীবোর্ড ইভেন্ট, মাউস ক্লিক ইভেন্ট এবং নেস্টেড ইভেন্ট হ্যান্ডলার শোনার সময় আপনি ইভেন্ট হ্যান্ডলার ব্যবহার করতে পারেন।

ইভেন্ট মডিফায়ার .one কীবোর্ড এবং মাউস ক্লিক ইভেন্ট উভয়ের পরে ব্যবহার করা যেতে পারে।

কীবোর্ড কী ইভেন্ট মডিফায়ার

বিভিন্ন কীবোর্ড ইভেন্টের ধরন হল কীডাউন, কীপ্রেস এবং কীআপ।

প্রতিটি কী ইভেন্টের প্রকারের সাথে, আমরা একটি কী ইভেন্ট হওয়ার পরে ঠিক কোন কী শুনতে হবে তা নির্দিষ্ট করতে পারি। আমাদের আছে .space, .enter, .w এবং .up.

একটি নির্দিষ্ট কী-এর মান নিজে খুঁজে পেতে, আপনি কী ইভেন্টটি ওয়েব পৃষ্ঠায় বা console.log(event.key) দিয়ে কনসোলে লিখতে পারেন:

উদাহরণ

কীডাউন কীবোর্ড ইভেন্টটি 'getKey' পদ্ধতির আহ্বান করে এবং ইভেন্ট অবজেক্ট থেকে 'কী' মান কনসোলে এবং ওয়েব পৃষ্ঠায় লেখা হয়।

<input v-on:keydown="getKey">
<p> {{ keyValue }} </p>
data() {
  return {
    keyValue = ''
  }
},
methods: {
  getKey(evt) {
    this.keyValue = evt.key
    console.log(evt.key)
  }
}

সিস্টেম এডিটর কী যেমন .alt, .ctrl, .shift বা .meta এর সাথে একত্রে মাউস ক্লিক বা কী চাপলেই আমরা ইভেন্ট ফায়ার করা বেছে নিতে পারি। সিস্টেম এডিটর কী .meta বলতে উইন্ডোজ কম্পিউটারে উইন্ডোজ কী বা অ্যাপল কম্পিউটারে কমান্ড কী বোঝায়।

মূল সম্পাদক বিস্তারিত
.[Vue key alias] Vue-তে সবচেয়ে সাধারণ কীগুলির নিজস্ব উপনাম রয়েছে:
  • .enter
  • .tab
  • .delete
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
.[letter] আপনি কী টিপলে প্রদর্শিত অক্ষরটি নির্দিষ্ট করুন৷ উদাহরণ স্বরূপ: 'S' কী চাওয়ার জন্য .s কী মডিফায়ার ব্যবহার করুন।
.[system modifier key] .alt, .ctrl, .shift বা .meta. এই কীগুলি অন্যান্য কী বা মাউস ক্লিকের সাথে একত্রে ব্যবহার করা যেতে পারে।
উদাহরণ

ব্যবহারকারী যখন <textarea> ট্যাগের ভিতরে 's' লেখেন তখন একটি সতর্কতা তৈরি করতে .s মডিফায়ার ব্যবহার করুন।

<div id="app">
  <p>Try pressing the 's' key:</p>
  <textarea v-on:keyup.s="createAlert"></textarea>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    methods: {
      createAlert() {
        alert("You pressed the 'S' key!")
      }
    }
  })
  app.mount('#app')
</script>

কীবোর্ড ইভেন্ট মডিফায়ার সংযুক্ত করুন

ইভেন্ট হ্যান্ডলারগুলিও নেস্টেড ব্যবহার করা যেতে পারে যাতে পদ্ধতিটি কল করার জন্য একই সময়ে একাধিক জিনিস ঘটতে হবে।

উদাহরণ

যখন 's' এবং 'ctrl' একই সময়ে চাপা হয় তখন একটি সতর্কতা তৈরি করতে <textarea> ট্যাগের মধ্যে .s এবং .ctrl সংশোধক একসাথে ব্যবহার করুন।

<div id="app">
  <p>Try pressing the 's' key:</p>
  <textarea v-on:keydown.ctrl.s="createAlert"></textarea>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    methods: {
      createAlert() {
        alert("You pressed the 'S' and 'Ctrl' keys, in combination!")
      }
    }
  })
  app.mount('#app')
</script>

মাউস বোতাম মডিফায়ার

একটি মাউস ক্লিকে প্রতিক্রিয়া জানাতে, আমরা লিখতে পারি v-on:click, কিন্তু কোন মাউস বোতামটি ক্লিক করা হয়েছে তা নির্দিষ্ট করতে .left, .center, বা .right modifier ব্যবহার করতে পারি।

ট্র্যাকপ্যাড ব্যবহারকারী: একটি ডান ক্লিক তৈরি করতে আপনাকে দুটি আঙুল দিয়ে ক্লিক করতে হতে পারে, অথবা আপনার কম্পিউটারে ট্র্যাকপ্যাডের নীচের ডানদিকে ক্লিক করতে হতে পারে৷

উদাহরণ

যখন একজন ব্যবহারকারী একটি <div> উপাদানে ডান-ক্লিক করেন তখন পটভূমির রঙ পরিবর্তন করুন:

<div id="app">
  <div v-on:click.right="changeColor"
       v-bind:style="{backgroundColor:'hsl('+bgColor+',80%,80%)'}">
    <p>Press right mouse button here.</p>
  </div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        bgColor: 0
      }
    },
    methods: {
      changeColor() {
        this.bgColor+=50
      }
    }
  })
  app.mount('#app')
</script>

মাউস বোতাম ইভেন্টগুলি কম্পিউটার এডিটর কী এর সাথে একত্রে কাজ করতে পারে।

উদাহরণ

পটভূমির রঙ পরিবর্তন করুন যখন একজন ব্যবহারকারী 'ctrl' কী-এর সাথে একটি <div> উপাদানে ডান-ক্লিক করেন:

<div id="app">
  <div v-on:click.right.ctrl="changeColor"
       v-bind:style="{backgroundColor:'hsl('+bgColor+',80%,80%)'}">
    <p>Press right mouse button here.</p>
  </div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        bgColor: 0
      }
    },
    methods: {
      changeColor() {
        this.bgColor+=50
      }
    }
  })
  app.mount('#app')
</script>

রাইট মডিফায়ার ছাড়াও আমরা রাইট-ক্লিক করলে ডিফল্ট ড্রপ-ডাউন মেনু দেখাতে বাধা দিতে .prevent ইভেন্ট মডিফায়ার ব্যবহার করতে পারি।

উদাহরণ

যখন আপনি <div> উপাদানের পটভূমির রঙ পরিবর্তন করতে ডান-ক্লিক করেন তখন ড্রপ-ডাউন মেনু প্রদর্শিত হতে বাধা দেয়:

<div id="app">
  <div v-on:click.right.prevent="changeColor"
       v-bind:style="{backgroundColor:'hsl('+bgColor+',80%,80%)'}">
    <p>Press right mouse button here.</p>
  </div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        bgColor: 0
      }
    },
    methods: {
      changeColor() {
        this.bgColor+=50
      }
    }
  })
  app.mount('#app')
</script>

পদ্ধতির ভিতরে event.preventDefault() ব্যবহার করে রাইট ক্লিক করার পরে ড্রপ-ডাউন মেনুটিকে উপস্থিত হওয়া থেকে প্রতিরোধ করা সম্ভব, কিন্তু Vue .prevent মডিফায়ারের সাথে কোডটি আরও পাঠযোগ্য এবং বজায় রাখা সহজ হয়ে ওঠে।

আপনি click.left.shift-এর মতো অন্যান্য সংশোধকগুলির সাথে বাম বোতাম মাউস ক্লিকে প্রতিক্রিয়া জানাতে পারেন:

উদাহরণ

'শিফট' কীবোর্ড কী ধরে রাখুন এবং ছবি প্রতিস্থাপন করতে <img> ট্যাগের বাম মাউস বোতাম টিপুন।

<div id="app">
  <p>Hold 'Shift' key and press left mouse button:</p>
  <img v-on:click.left.shift="changeImg" v-bind:src="imgUrl">
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        imgUrlIndex: 0,
        imgUrl: 'img_tiger_square.jpeg',
        imgages: [
          'img_tiger_square.jpeg',
          'img_moose_square.jpeg',
          'img_kangaroo_square.jpeg'
        ]
      }
    },
    methods: {
      changeImg() {
        this.imgUrlIndex++
        if(this.imgUrlIndex>=3){
          this.imgUrlIndex=0
        }
        this.imgUrl = this.images[this.imgUrlIndex]
      }
    }
  })
  app.mount('#app')
</script>

ভিউ টিউটোরিয়াল

ব্যায়াম দিয়ে নিজেকে পরীক্ষা করুন

প্রশিক্ষণ:

সঠিক কোড প্রদান করুন যাতে ডান ক্লিক করলে <div> উপাদানটি রঙ পরিবর্তন করে।

এছাড়াও, কোড যোগ করুন যাতে ডিফল্ট ড্রপ-ডাউন মেনু প্রদর্শিত হয় যখন আপনি একটি ওয়েব পৃষ্ঠায় ডান-ক্লিক করলে প্রদর্শিত হয় না।

<div id="app">
  <div v-on:click.="changeColor"
      v-bind:style="{backgroundColor:'hsl('+bgColor+',80%,80%)'}">
    <p>Press right mouse button here.</p>
  </div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        bgColor: 0
      }
    },
    methods: {
      changeColor() {
        this.bgColor+=50
      }
    }
  })
  app.mount('#app')
</script>
right
✗ ভুল! ডান যথেষ্ট নয়, রাইট ক্লিক মেনু ব্লক করার জন্য আমাদের প্রতিরোধ সংশোধকেরও প্রয়োজন
left
✗ ভুল! বাম ক্লিকের জন্য বাম, ডান ক্লিক নয়
right.prevent
✓ ঠিক আছে! ডান ডান-ক্লিক করুন, রাইট-ক্লিক মেনু প্রতিরোধ করতে প্রতিরোধ করুন
prevent.right
✗ ভুল! সংশোধকগুলির ক্রম গুরুত্বপূর্ণ, প্রথমে ডান, তারপর প্রতিরোধ করুন